package com.agilya.dao.daointerface;

import java.util.List;

import com.agilya.dao.exception.DAOExceptions;
import com.agilya.modele.Chapitre;

public interface ChapitreDAO {

	/**
	 * Enregistre un Chapitre
	 * 
	 * @param ch
	 *            chapitre a ajouter
	 * @throws DAOExceptions
	 */
	public void enregistrer(Chapitre ch) throws DAOExceptions;

	/**
	 * Modifie un Chapitre existant
	 * 
	 * @param ch
	 *            chapitre a modifier
	 * @throws DAOExceptions
	 */
	public void modifier(Chapitre ch) throws DAOExceptions;

	/**
	 * TODO : A developper. Supprimer un Chapitre
	 * 
	 * @param id
	 *            id du chapitre a supprimer
	 * @throws DAOExceptions
	 */
	public void supression(long id) throws DAOExceptions;

	/**
	 * Retourne un chapitre par son id
	 * 
	 * @param id
	 * @return Chapitre
	 * @throws DAOExceptions
	 */
	Chapitre consulter(long id) throws DAOExceptions;

	/**
	 * Retourne tous les chapitres
	 * 
	 * @return Liste de chapitres
	 * @throws DAOExceptions
	 */
	public List<Chapitre> getAllChapitre() throws DAOExceptions;

	/**
	 * Retourne un chapitre par son id
	 * 
	 * @param id
	 * @return un chapitre
	 * @throws DAOExceptions
	 */
	public Chapitre getChapitreById(int id) throws DAOExceptions;

	/**
	 * Retourne une liste de chapitre appartenant a un QCM
	 * 
	 * @param id
	 *            id du qcm
	 * 
	 * @return liste de chapitres
	 * @throws DAOExceptions
	 */
	public List<Chapitre> getAllChapitreByQCM(int id) throws DAOExceptions;

}
